package com.ctshk.rpc.scenic.service;


import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.scenic.dto.*;
import com.ctshk.rpc.scenic.req.ScenicReservationListReq;
import com.ctshk.rpc.scenic.req.ScenicReservationOrderReq;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * <p>
 * 预订中心门票 服务类
 * </p>
 *
 * @author 张志朋
 * @since 2021-02-22
 */
public interface IScenicReservationService {

    /**
     * 查询预订中心景点门票列表
     *
     * @param reservationListReq 入参
     * @return 返回值
     */
    PageResponse<ScenicReservationListDTO> queryList(ScenicReservationListReq reservationListReq,TokenUser tokenUser);

    /**
     * 根据产品id查询预订中心门票详情
     *
     * @param id 产品id
     * @return
     */
    ScenicTicketDetailsDTO query(Long id,TokenUser tokenUser);

    /**
     * 默认推荐15个
     *
     * @return 返回值
     */
    List<ScenicReservationListDTO> recommendedList(TokenUser tokenUser);

    /**
     * 根据产品信息获取订单信息
     *
     * @param scenicReservationOrderReq 产品信息
     * @return 订单信息
     */
    ScenicReservationGetOrderDTO getOrderInfo(ScenicReservationOrderReq scenicReservationOrderReq);

    /**
     * 查询返回总价
     * @param type  1.自营 2代理  3第三方
     * @param stocktId 规格Id
     * @param productid 产品ID
     *@param date
     * @param id 自营时传用户或者部门id  代理传代理商id  第三方传第三方平台id
     * @return
     */

    ScenicPriceDTO queryAllPrices(Integer type, Long stocktId, Long productid, Long id, LocalDate date) throws Exception;


    /**
     * 查询返回成本价跟庫存    //  沒有加服務費！！！！！！！！
     * @param productid 产品ID
     * @param stockId 具体的规格ID
     * @return
     */
    ScenicPriceDTO queryCostByProductId(Long productid,Long stockId) ;

    /**
     * 公告s查询
     * @param
     * @return
     */
    List<NoticeDTO> queryListByCode();
}
